package config

import (
	"github.com/gin-gonic/gin"
	"github.com/spf13/viper"
)

var Engine *gin.Engine

func init() {
	// 实例化gin框架默认的引擎
	Engine = gin.Default()
}

type DatabaseConfig struct {
	Host     string `json:"host"`
	Port     int    `json:"port"`
	User     string `json:"user"`
	Password string `json:"password"`
	Database string `json:"database"`
}

type OssConfig struct {
	AccessKeyId     string `json:"access_key_id"`
	AccessKeySecret string `json:"access_key_secret"`
	Endpoint        string `json:"endpoint"`
	BucketName      string `json:"bucket_name"`
}

// InitConfig 函数用于初始化配置文件读取相关设置
func InitConfig() {
	// 设置配置文件名称（不包含后缀）
	viper.SetConfigName("oss_config")
	// 设置配置文件类型为json
	viper.SetConfigType("json")
	// 添加配置文件所在的目录路径，这里假设配置文件都放在项目根目录下的configs目录，可根据实际情况修改
	viper.AddConfigPath("../configs")
	if err := viper.ReadInConfig(); err != nil {
		panic(err)
	}
}

func GetAccessKeyID() string {
	return viper.GetString("access_key_id")
}

func GetAccessKeySecret() string {
	return viper.GetString("access_key_secret")
}

func GetEndpoint() string {
	return viper.GetString("endpoint")
}

func GetBucketName() string {
	return viper.GetString("bucket_name")
}
